package com.orangelife.webservice.service.statistics;

import javax.jws.WebParam;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;

import com.orangelife.webservice.service.statistics.entity.StatisticsDto;

public interface IReportingWebService {

	/***
	 * 查询房屋余额
	 * 
	 * @param servletRequest
	 * @param commID
	 * @param searchType
	 * @param search
	 * @param startTime
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 * @throws Exception
	 */
	@GET
	@Path("accountInfosByComm")
	@Produces({ "application/json" })
	public Response getAllPropFeeAccountInfo(
			@Context HttpServletRequest servletRequest,
			@QueryParam("commID") String commID, @QueryParam("time") String time)
			throws Exception;

	/**
	 * 各小区月饱和应收
	 * 
	 * @author zhr
	 * @date 2016年12月23日
	 * @param servletRequest
	 * @param st
	 * @return
	 * @throws Exception
	 */
	@GET
	@Path("/fullIncomeByComm")
	@Produces({ "application/json" })
	public Response fullIncomeByComm(
			@Context HttpServletRequest servletRequest,
			@QueryParam("time") String time, @QueryParam("commID") String commID)
			throws Exception;

	/**
	 * 各小区清欠表
	 * 
	 * @author zhr
	 * @date 2016年12月23日
	 * @param servletRequest
	 * @param commID
	 * @param endTime
	 * @return
	 * @throws Exception
	 */
	@GET
	@Path("/clearOweByComm")
	@Produces({ "application/json" })
	public Response clearOweByComm(@Context HttpServletRequest servletRequest,
			@QueryParam("commID") String commID,
			@QueryParam("endTime") String endTime) throws Exception;

	/**
	 * 欠费账龄分析
	 * 
	 * @author zhr
	 * @date 2016年12月23日
	 * @param servletRequest
	 * @param commID
	 * @param endTime
	 * @return
	 * @throws Exception
	 */
	@GET
	@Path("/aging")
	@Produces({ "application/json" })
	public Response aging(@Context HttpServletRequest servletRequest,
			@QueryParam("commID") String commID,
			@QueryParam("time") String time,
			@QueryParam("feeTypeID") String feeTypeID) throws Exception;

	// 收缴率
	@GET
	@Path("/payRateByComm")
	@Produces({ "application/json" })
	public Response payRateByComm(@Context HttpServletRequest servletRequest,
			@QueryParam("feeTypeID") String feeTypeID,
			@QueryParam("commID") String commID, @QueryParam("time") String time)
			throws Exception;

	// 收缴率()
	@GET
	@Path("/payRateYearByComm")
	@Produces({ "application/json" })
	public Response payRateYearByComm(
			@Context HttpServletRequest servletRequest,
			@QueryParam("commID") String commID,
			@QueryParam("time") String time,
			@QueryParam("feeTypeID") String feeTypeID) throws Exception;

	// 其他费用收款明细
	@POST
	@Path("/clearOwe")
	@Produces({ "application/json" })
	public Response clearOwe(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	// 饱和
	@POST
	@Path("/fullIncome")
	@Produces({ "application/json" })
	public Response fullIncome(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	// 收缴率
	@POST
	@Path("/payRate")
	@Produces({ "application/json" })
	public Response payRate(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	// 收缴率
	@POST
	@Path("/payRateDetail")
	@Produces({ "application/json" })
	public Response payRateDetail(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	// 欠费统计
	@POST
	@Path("/getOwerOweFeeInfo")
	@Produces({ "application/json" })
	public Response getOwerOweFeeInfo(
			@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

}
